package com.ftg.learn.chapter14.question;

import com.sun.media.sound.SoftTuning;

import java.math.BigDecimal;

/**
 * 冰箱
 * @author KangJx
 * @date 2021/7/22
 */
public class IceBox {

    public void put(Elephant e){

    }

    /**
     * 新年要到了，乎乎准备把气球摆成一行，装饰一下自己的卧室。乎乎有两种颜色的气球，分别是红色和蓝色，每种颜色的气球都有无限个。
     红色比较扎眼，所以乎乎不希望连续两个红色气球摆放在一起。
     乎乎粗略计算了一下，当需要摆放3个气球时，他有5种不同的摆放方式：红蓝红、红蓝蓝、蓝蓝蓝、蓝蓝红、蓝红蓝
     但乎乎的卧室需要摆放100个气球，你能告诉他有多少种不同的摆放方式吗？本题无输入，直接输出问题的答案即可
     @param ci 现有汽球数量
     * @return
     */
    public String fanbonic(int ci){
        int index = 0;
        BigDecimal begin = new BigDecimal("1");
        BigDecimal cur = new BigDecimal("1");
        //现有排序数为2，前面两次不计算
        int no = ci + 2;
        while(index < no){
            if(index <= 1){
                System.out.println("现有"+index+"个汽球，排序方式为" + cur.toString());
            }else{
                BigDecimal t = cur;
                cur = begin.add(cur);
                begin = t;
                System.out.println("现有"+index+"个汽球，排序方式为" + cur.toString());
            }
            index++;
        }

        return cur.toString();
    }

    /**
     * 超过string 最大长度
     *  io .txt
     *  a.txt b.txt c.txt
     *  银行出过
     *  400mb .txt  (...)
     * @param x 123
     * @param y  456
     * @return
     */
    public String add(String x,String y){
        //x ,y 长度不=
        //最后一次计算
        StringBuilder sb = new StringBuilder();
        for(int i = x.length() - 1 ;i >= 0;i--){
            //Integer == int
            int xlast = Integer.valueOf(x.charAt(i)+"");
            int ylast = Integer.valueOf(y.charAt(i)+"");
            int sum = xlast + ylast;
            if(i != x.length() - 1){
                int flag = sum >= 10? 1 : 0;
                int ge = sum+flag % 10;
                sb.append(ge);
            }else{
                int ge = sum % 10;
                sb.append(ge);
            }

        }
        return sb.reverse().toString();
    }

    public String add(BigDecimal x,BigDecimal y){
        return x.add(y).toString();
    }
//
//    public String fanbonic1(int ci){
//        int index = 0;
//        BigDecimal begin = new BigDecimal("0");
//        BigDecimal cur = new BigDecimal("2");
//        //现有排序数为2，前面两次不计算
//        while(index++ < ci){
//            BigDecimal t = cur;
//            cur = begin.add(cur);
//            begin = t;
//            System.out.println(cur.toString());
//        }
//        return cur.toString();
//    }

}
